package com.gengzp.common.context;

import com.alibaba.ttl.TransmittableThreadLocal;

import java.util.Objects;

/**
 * @ClassName MyBatisContextHolder
 * @Description mybatis上下文线程变量
 * @Author gengzp
 * @Date 2025/9/28 15:55
 */
public class MyBatisContextHolder {

    /**
     * 输出 sql 日志线程变量, 默认为true
     */
    private static final ThreadLocal<Boolean> PRINT_SQL_LOG_FLAG = new TransmittableThreadLocal<>();

    /**
     * 设置是否输出 sql 日志
     *
     * @param flag true:输出 false:不输出
     */
    public static void setPrintSqlLogFlag(boolean flag) {
        PRINT_SQL_LOG_FLAG.set(flag);
    }

    /**
     * 获取是否输出 sql 日志
     * <p> 默认打印日志, 因此即使空值也返回true </p>
     *
     * @return true:输出 false:不输出
     */
    public static Boolean getPrintSqlLogFlag() {
        return !Objects.equals(PRINT_SQL_LOG_FLAG.get(), Boolean.FALSE);
    }

}
